import os

import gradio as gr
from langchain_openai import ChatOpenAI

# 设置环境变量
os.environ["OPENAI_API_KEY"] = os.getenv("DASHSCOPE_API_KEY")
os.environ["OPENAI_API_BASE"] = "https://dashscope.aliyuncs.com/compatible-mode/v1"

# 创建ChatOpenAI实例   # 使用Qwen-Plus模型
llm = ChatOpenAI(model_name="qwen-plus", openai_api_key=os.getenv("OPENAI_API_KEY"),
                  openai_api_base=os.getenv("OPENAI_API_BASE"), temperature=0.7,  # 可选参数，设置生成文本的随机性
                  )


# 定义一个函数，用于处理 Gradio 的输入并返回模型的响应
def chat_with_openai(message):
    # 调用 ChatOpenAI 实例
    response = llm([message])  # 注意这里可能需要传入特定格式的消息列表
    return response.content  # 返回响应的内容


# 创建 Gradio 接口
with gr.Blocks() as demo:
    # 创建文本输入框
    input_text = gr.Textbox(label="请输入您的消息", placeholder="你好")
    # 创建文本输出框
    output_text = gr.Textbox(label="模型回复")
    # 将输入绑定到输出
    input_text.change(fn=chat_with_openai, inputs=input_text, outputs=output_text)

# 启动 Gradio 界面
demo.launch(share=True)
